package Third;

import java.io.File;

/**
 * @author 长风无言
 */
public class CopyFolder {
    /**
     * description:实现文件夹及其子目录所有文件的复制
     * @param oldPath 需要复制的文件夹路径
     * @param newPath 目的文件夹路径
     * @return void
     */
    public static void copyFolder(String oldPath,String newPath) {
        //分别关联上旧文件夹和新文件夹
        File fr = new File(oldPath);
        File fw = new File(newPath);
        //检查目标文件夹是否存在
        if(!fr.exists()){
            System.out.println("欲复制的目录不存在。");
            return;
        }
        //检查目的文件夹是否存在，否则创建一个空的目标文件夹
        if(!fw.exists()){
            fw.mkdirs();
            System.out.println(newPath+"复制成功");
        }
        //遍历目标文件夹下的所有的文件和目录
        for(File f :fr.listFiles()){
            //如果目标是文件
            if(f.isFile()){
                //复制文件
                CopyFiles.copyFiles(f.getAbsolutePath(),fw.getAbsolutePath()+"/"+f.getName());
                System.out.println(f.getName()+"复制成功");
                //目标是文件夹
            }else{
                //调用函数本身实现递归遍历子目录
                CopyFolder.copyFolder(f.getAbsolutePath(),fw.getAbsolutePath()+"/" + f.getName());
            }
        }
    }
}
